% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode

\documentclass[a4paper,10pt,landscape]{article}



\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[landscape]{geometry}
\usepackage{graphicx}
\usepackage{tikz-er2}
\usepackage{lscape}

\usepackage[spanish]{babel}
\usepackage{verbatim}

%Idioma
%\usepackage[latin1]{inputenc}

%Letra arial
\usepackage{helvet}


%Para incluir codigo fuente
\usepackage{listings}

%Para tener encabezados y pie de pagina personalizados
\usepackage{fancyhdr}

%Para poner epigrafe en las imagenes
%\usepackage[hang,bf]{caption2}

\usepackage{anysize}

%------------Gráficos------------
%Paquete de gráficos
%\newif\ifpdf
%\ifx\pdfoutput\undefined
%	\pdffalse
%\else
%	\pdfoutput=1
%	\pdftrue
%\fi
%
%\ifpdf
%	\usepackage[pdftex]{graphicx}
%% 	\pdfcompresslevel=9
% 	\pdfcompresslevel=0
%	\usepackage{pdfpages}
%\else
%	\usepackage[dvips]{graphicx}
%\fi



% Titulo del Trabajo Practico.
\title{75.15 Base de datos}

% Informaci\'on sobre los autores.
\author{Lilian Ocampo, \textit{Padr\'on: 70.990}              		\\
            \texttt{lilianocampo@gmail.com}                             		\\
           Estela Del Barco, \textit{Padr\'on: 75.558}                		\\
            \texttt{estela\_db@yahoo.com.ar}                     		\\
	Celeste Maldonado, \textit{Padr\'on: 85.630}			\\
            \texttt{ maldonado.celeste@gmail.com }       			\\ 
	Mauricio Costa, \textit{Padr\'on: 82.794}                		\\
	 \texttt{maurito11@gmail.com}                     			\\
            \LARGE{}         						\\
            \LARGE{}         						\\
            \LARGE{}         						\\
            \Large{2do. Cuatrimestre de 2011}         		\\                       
            \texttt{}         						\\
            \Large{Facultad de Ingenier\'\i{}a, Universidad de Buenos Aires}            \\
       }
\date{}



\begin{document}

\marginsize{2cm}{2cm}{2cm}{2cm}

\begin{figure}
\centering
\includegraphics[width=100pt]{logofiuba.jpg}
\end{figure}


\maketitle
\thispagestyle{empty}   % quita el numero en la primer pagina
%\renewcommand{\labelenumi}{\alph{enumi}.}


\newpage
% Declaro el indice

\tableofcontents
\newpage

\setcounter{page}{1}

\section{Hipótesis}

\begin{itemize}
\item Un paciente puede tener un solo plan.
\item Un paciente que no tiene plan, se modela mediante un plan con tipo "privado", donde el pago es obligatorio y la cobertura de una prestación es de 0\%.
\end{itemize}

\newpage

\thispagestyle{empty}

\section{Diagrama entidad relación}

\usetikzlibrary{positioning}
\usetikzlibrary{shadows}

\tikzstyle{every entity}		= [top color=white, bottom color=blue!30,  draw=blue!50!black!100, drop shadow]
\tikzstyle{every weak entity} 	= [drop shadow={shadow xshift=.7ex, shadow yshift=-.7ex}]
\tikzstyle{every attribute} 	= [top color=white, bottom color=yellow!20, draw=yellow, node distance=1cm, drop shadow]
\tikzstyle{every relationship} 	= [top color=white, bottom color=red!20, draw=red!50!black!100, drop shadow]
\tikzstyle{every isa} 		= [top color=white, bottom color=green!20, draw=green!50!black!100, drop shadow]

\begin{center}
\scalebox{.86}{
\begin{tikzpicture}[node distance=1.5cm, every edge/.style={link}]


% RAMA TURNO

	\node[weak entity] (autorizacion){AUTORIZACION};
	\node[relationship] (autorizacion_turno) [below=1cm of autorizacion] {Requiere}  edge[total] node[auto,swap]{(0,N)} (autorizacion);
	\node[attribute] (id_autorizacion) [right=1cm of autorizacion] {\discriminator{id autorizacion}} edge (autorizacion);

	\node[weak entity] (bono) [ below left=1 cm of autorizacion] {BONO};
	\node[relationship] (bono_turno) [below=1cm of bono] {Presenta}  edge [total] node[auto,swap]{(0,N)} (bono);
	\node[attribute] (id_bono) [above=1cm of bono] {\discriminator{id bono}} edge (bono);

	\node[weak entity] (pago) [right=4 cm of bono] {PAGO};
	\node[relationship] (pago_turno) [below=1cm of pago] {Registra}  edge [total] node[auto,swap]{(1,N)} (pago);
	\node[attribute] (id_pago) [right=1cm of pago] {\discriminator{id pago}} edge (pago);

	\node[weak entity] (turno)[below=3 cm of autorizacion_turno]  {TURNO}edge node[auto,swap]{(1,1)} (bono_turno)
												edge node[auto,swap]{(1,1)} (pago_turno)
												edge node[auto,swap]{(1,1)} (autorizacion_turno);


	\node[relationship] (turno_lugar) [below=1cm of turno] {Se otorga en}  edge node[auto,swap] {(0,N)} (turno);
	
	\node[entity] (lugar) [below=1cm of turno_lugar] {LUGAR DE ATENCION} edge node[auto,swap]{(1,1)} (turno_lugar);
	\node[attribute] (nom_lugar) [below=1cm of lugar] {\key{nombre}} edge (lugar);


	\node[relationship] (turno_prestacion) [ left=1.5cm of lugar] {Para} edge node[auto,swap] {(0,N)} (turno);


%%  RAMA PROFESIONAL - ESPECIALIDAD - PRESTACION

	\node[relationship] (turno_profesional) [left=2cm of turno] {Se asigna a} edge node[auto,swap] {(0,N)} (turno);

	\node[entity] (profesional) [above left=5cm of turno_profesional] {PROFESIONAL} edge node[auto,swap] {(1,1)} (turno_profesional);
	\node[attribute] (legajo) [above=1cm of profesional] {\key{legajo}} edge (profesional);


	\node[relationship] (profesional_esp) [below=1cm of profesional] {Se especializa en} edge node[auto,swap] {(0,N)} (profesional);


	\node[entity] (especialidad) [below=1cm of profesional_esp] {ESPECIALIDAD} edge node[auto,swap]{(1,N)} (profesional_esp);
	\node[attribute] (nombre_esp) [right=1cm of especialidad] {\key{nombre}} edge (especialidad);	

	\node[relationship] (prestacion_esp) [below=1cm of especialidad] {Permite realizar} edge node[auto,swap] {(1,1)} (especialidad);


	\node[weak entity] (prestacion) [below right=3cm of prestacion_esp] {PRESTACION} edge [total] node[auto,swap]{(1,N)} (prestacion_esp) edge node[auto,swap]{(1,1)} (turno_prestacion) ;
	\node[attribute] (nombre_prest) [above=3cm of prestacion] {\discriminator{nombre}} edge (prestacion);

	\node[relationship] (prestacion_plan) [ right=6cm of prestacion] {Cubre} edge node[auto,swap] {(1,N)} (prestacion);
	\node[attribute] (porcentaje_cubre) [ right=1cm of prestacion_plan] {porcentaje} edge (prestacion_plan);
	\node[attribute] (bono_cubre) [above =3cm of prestacion_plan] {bono} edge (prestacion_plan);
	\node[attribute] (autorizacion_cubre) [below right=1.3cm of bono_cubre] {autorizacion} edge (prestacion_plan);



%% RAMA PACIENTE -  PLAN - ENTIDAD FINANCIADORA

	\node[relationship] (turno_paciente) [ right=2cm of turno] {Solicita} edge[total] node[auto,swap] {(0,N)}(turno);
	\node[relationship] (turno_paciente_c) [below=1cm of turno_paciente] {Cancela} edge [total] node[auto,swap] {(0,N)}(turno);
	\node[attribute] (causa_cancela) [below right=1cm of turno_paciente_c] {causa} edge (turno_paciente_c);


	\node[entity] (paciente) [right=2cm of turno_paciente] {PACIENTE} edge node[auto,swap] {(1,1)}(turno_paciente) edge node [auto,swap] {(1,1)} (turno_paciente_c);
	\node[attribute] (tipo_doc) [above=1cm of paciente] {\key{tipo doc}} edge (paciente);
	\node[attribute] (nro_doc) [right=1cm of tipo_doc] {\key{nro doc}} edge (paciente);

	\node[relationship] (plan_paciente) [below=1cm of paciente] {Contrata } edge node[auto,swap] {(0,N)} (paciente);
	\node[attribute] (numero_af_contrata) [right=3cm of plan_paciente] {nro afiliado} edge (plan_paciente);
	\node[attribute] (tipo_af_contrata) [above=0.5cm of numero_af_contrata] {tipo afiliado} edge (plan_paciente);
	\node[attribute] (condicion_contrata) [below=0.5cm of numero_af_contrata] {condicion} edge (plan_paciente);

	\node[weak entity] (plan) [below=2cm of plan_paciente] {PLAN} edge node[auto,swap]{(1,1)} (plan_paciente) edge node[auto,swap]{(0,N)} (prestacion_plan);
	\node[attribute] (nombre) [above right=1cm of plan] {\discriminator{nombre}} edge (plan);


	\node[relationship] (plan_ef) [right=2cm of plan] {Sujeto a } edge [total] node[auto,swap] {(0,N)} (plan);
	
	\node[entity] (ef) [right=1cm of plan_ef] {ENTIDAD FINANCIADORA} edge node[auto,swap]{(1,1)} (plan_ef);
	\node[attribute] (nombre_ef) [below=1cm of ef] {\key{nombre}} edge (ef);%


% RAMA HISTORIA CLINICA - INFORME

	\node[relationship] (paciente_hist) [ right=2cm of paciente] {Tiene} edge node[auto,swap] {(1,1)}(paciente);
	\node[attribute] (num_turno) [above=4cm of paciente_hist] {\discriminator{Nro de turno}} edge (turno);

	\node[entity] (hist) [above right=4cm of paciente_hist] {HISTORIA CLINICA} edge node[auto,swap]{(1,1)} (paciente_hist) ;
	\node[attribute] (numero_hist) [above=1cm of hist] {\key{nro hist}} edge (hist);


	\node[relationship] (hist_informe) [ below=1cm of hist] {Se conforma por} edge node[auto,swap] {(1,1)}(hist);
	
	\node[weak entity] (informe) [below=1cm of hist_informe] {INFORME} edge[total] node[auto,swap]{(1,N)} (hist_informe) ;
	\node[attribute] (numero_inf) [below=1cm of informe] {\discriminator{nro informe}} edge (informe);


\end{tikzpicture}
}

\end{center}


%\section{Diagrama entidad relación}
%
%Por simplicidad decidimos no plasmar todos los atributos en el der.
%
%\begin{center}
%
%\includegraphics[scale=0.75]{der.png}
%
%\end{center}

\newpage

\section{Diccionario}

\subsection{Entidades}

\begin{enumerate}
\item Turno\\
Definición: Esta entidad representa el turno asignado a un determinado paciente para realizar una determinada prestación en un lugar\\ determinado. Registra también el estado del mismo.\\
Atributos: fecha\_citacion, fecha\_asignacion, hora, nro\_turno, sobrecupo, asistio\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, nro\_turno)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, nro\_turno)\\

\item Paciente\\
Definición: Esta entidad representa la persona que se presenta en el hospital para solicitar uno o varios turnos para una determinada prestación.\\
Atributos: apellido\_casado, tipo\_documento, nro\_documento, condicion\_IVA, fecha\_nacimiento, lugar\_nacimiento, direccion, nombre, apellido\\
Claves candidatas: (tipo\_documento, nro\_documento)\\
Clave primaria: (tipo\_documento, nro\_documento)\\

\item Profesional\\
Definición: Esta entidad representa el profesional del hospital contratado para brindar una o varias prestaciones.\\
Atributos: nro\_legajo, direccion, nombre, apellido\\
Claves candidatas: (nro\_legajo)\\
Clave primaria: (nro\_legajo)\\

\item Especialidad \\
Definición: Esta entidad representa la especialidad de un determinado profesional\\
Atributos: nombre\\
Claves candidatas: (nombre)\\
Clave primaria: (nombre)\\

\item Lugar de atención\\
Definición: Esta entidad representa el lugar físico donde es llevada a cabo una prestación de un determinado turno.\\
Atributos: nombre, piso\\
Claves candidatas: (nombre)\\
Clave primaria: (nombre)\\

\item Historia clínica\\
Definición: Esta entidad representa la historia clínica de un determinado paciente\\
Atributos: nro\_historia\_clinica\\
Claves candidatas: (nro\_historia\_clinica)\\
Clave primaria: (nro\_historia\_clinica)\\

\item Informe\\
Definición: Esta entidad representa un informe perteneciente a una historia clínica de un determinado paciente, sobre una determinada prestación realizada.\\
Atributos: numero\_informe, detalle\\
Claves candidatas: (historia\_clinica.nro\_historia, numero\_informe)\\
Clave primaria: (historia\_clinica.nro\_historia, numero\_informe)\\

\item Plan\\
Definición: Esta entidad representa el plan de cobertura brindado por una determinada entidad financiadora a uno o varios pacientes.\\
Atributos: nombre\\
Claves candidatas: (entidad\_financiadora.nombre, nombre)\\
Clave primaria: (entidad\_financiadora.nombre, nombre)\\

\item Entidad financiadora\\
Definición: Esta entidad representa una entidad financiadora que se encarga de brindar planes de cobertura de prestaciones.\\
Atributos: nombre, tipo\\
Claves candidatas: (nombre)\\
Clave primaria: (nombre)\\

\item Prestación\\
Definición: Esta entidad representa una determinada prestación a brindar por el hospital.\\
Atributos: nombre\\
Claves candidatas: (especialidad.nombre, nombre)\\
Clave primaria: (especialidad.nombre, nombre)\\

\item Pago\\
Definición: Esta entidad representa el pago de un determinado turno.\\
Atributos: id\_pago, concepto, pago, importe\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_pago)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_pago)\\

\item Bono\\
Definición: Esta entidad representa el/los bonos presentados para un determinado turno.\\
Atributos: id\_bono, descripcion, presento\_bono\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_bono)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_bono)\\

\item Autorización\\
Definición: Esta entidad representa la/s autorizaciones requeridas para un determinado turno.\\
Atributos: id\_autorizacion, descripcion, presento\_autorizacion\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_autorizacion)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, id\_autorizacion)\\

\end{enumerate}


\newpage

\subsection{Relaciones}

\begin{enumerate}

\item Cubre\\
Definición: interrelación que vincula un plan con una prestación, indicando el tipo de cobertura para esa determinada prestación.\\
Atributos: porcentaje, bono, autorizacion\\
Claves candidatas: (especialidad.nombre, prestacion.nombre, entidad\_financiadora.nombre, plan.nombre)\\
Clave primaria: (especialidad.nombre, prestacion.nombre, entidad\_financiadora.nombre, plan.nombre)\\

\item Cancela\\
Definición: interrelación que vincula los turnos cancelados de un determinado paciente con el mismo.\\
Atributos: causa\\
Claves candidatas: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\
Clave primaria: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\

\item Contrata\\
Definición: interrelación que vincula a un determinado paciente con el plan que contrata\\
Atributos: nro\_afiliado, tipo\_afiliado, condicion\\
Claves candidatas: (paciente.nro\_documento, paciente.tipo\_documento)\\
Clave primaria: (paciente.nro\_documento, paciente.tipo\_documento)\\

\item Se asigna a\\
Definición: interrelación que vincula a un determinado turno con el profesional asignado al mismo\\
Claves candidatas: (paciente.nro\_documento, paciente.tipo\_documento,turno.nro\_turno)\\
Clave primaria: (paciente.nro\_documento, paciente.tipo\_documento,turno.nro\_turno)\\

\item Se especializa en\\
Definición: interrelación que vincula a un determinado profesional con la especialidad en la que destaca\\
Claves candidatas: (profesional.nro\_legajo, especialidad.nombre)\\
Clave primaria: (profesional.nro\_legajo, especialidad.nombre)\\

\item Permite realizar\\
Definición: interrelación que vincula a una determinada especialidad con las prestaciones asociadas a la misma\\
Claves candidatas: (prestacion.nombre)\\
Clave primaria: (prestacion.nombre)\\

\item Se otorga en\\
Definición: interrelación que vincula a un determinado turno con el lugar donde este será llevado a cabo\\
Claves candidatas: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\
Clave primaria: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\

\item Solicita\\
Definición: interrelación que vincula a un determinado turno con el paciente que solicita el mismo\\
Claves candidatas: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\
Clave primaria: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\

\item Tiene\\
Definición: interrelación que vincula a un determinado paciente con su correspondiente historia clínica\\
Claves candidatas: (paciente.nro\_documento, paciente.tipo\_documento),(nro\_historia)\\
Clave primaria: (nro\_historia)\\

\item Se conforma por\\
Definición: interrelación que vincula a una determinada historia clínica con sus informes\\
Claves candidatas: (historia\_clinica.nro\_historia, informe.numero\_informe)\\
Clave primaria: (historia\_clinica.nro\_historia, informe.numero\_informe)\\

\item Sujeto a\\
Definición: interrelación que vincula a un determinado plan con la entidad financiadora que lo provee\\
Claves candidatas: (entidad\_financiadora.nombre, plan.nombre)\\
Clave primaria: (entidad\_financiadora.nombre, plan.nombre)\\

\item Para\\
Definición: interrelación que vincula a un determinado turno con la prestación que provee\\
Claves candidatas: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\
Clave primaria: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento)\\

\item Registra\\
Definición: interrelación que vincula a un determinado pago con su turno\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, pago.id\_pago)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, pago.id\_pago)\\

\item Requiere\\
Definición: interrelación que vincula a un determinado turno con las autorizaciones que requiere\\
Claves candidatas: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, autorizacion.id\_autorizacion)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, autorizacion.id\_autorizacion)\\

\item Presenta\\
Definición: interrelación que vincula a un determinado turno con los bonos que presenta\\
Claves candidatas: (turno.nro\_turno, paciente.nro\_documento, paciente.tipo\_documento, turno.nro\_turno, bono.id\_bono)\\
Clave primaria: (paciente.tipo\_documento, paciente.nro\_documento, turno.nro\_turno, bono.id\_bono)\\

\end{enumerate}


\newpage

\subsection{Dependencias}

\begin{itemize}
\item De identificación:
	\begin{itemize}
	\item Informe: Con respecto a historia clínica que compone.
	\item Turno: Con respecto a paciente que lo solicita.
	\item Plan: Con respecto a la entidad financiadora que lo brinda.
	\item Prestacion: Con respecto a la especialidad a la cual pertenece.
	\item Pago: Con respecto al turno que registra.
	\item Bono: Con respecto al turno para el cual es presentado.
	\item Autorizacion: Con respecto al turno para el cual es requerido.
	\end{itemize}
\item Existenciales:
	\begin{itemize}
	\item Informe: Con respecto a historia clínica que compone.
	\item Historia Clínica: Con respecto al paciente sobre el cual registra la información.
	\item Plan: Con respecto a la entidad financiadora que lo brinda.
	\item Prestacion: Con respecto a la especialidad a la cual pertenece.
	\item Pago: Con respecto al turno que registra.
	\item Bono: Con respecto al turno para el cual es presentado.
	\item Autorizacion: Con respecto al turno para el cual es requerido.
	\end{itemize}
\item Dependencias débiles:\\
	\\
	Por lo anteriormente especificado, puede verse que se generan las siguientes dependencias débiles:\\
	\begin{itemize}
	\item Informe: Con respecto a historia clínica que compone.
	\item Plan: Con respecto a la entidad financiadora que lo brinda.
	\item Prestacion: Con respecto a la especialidad a la cual pertenece.
	\item Pago: Con respecto al turno que registra.
	\item Bono: Con respecto al turno para el cual es presentado.
	\item Autorizacion: Con respecto al turno para el cual es requerido.
	\end{itemize}
\end{itemize}

\newpage

\section{Modelo relacional}

Se detallan a continuación las relaciones obtenidas al realizar el mapeo entre los modelos conceptual y lógico.\\

\begin{itemize}
	\item Turno(fecha\_citacion, fecha\_asignacion, hora, nro\_turno, sobrecupo, asistio, tipo\_documento, nro\_documento)\\
	Claves candidatas: (tipo\_documento, nro\_documento, nro\_turno, nro\_legajo, lugar, especialidad, prestacion)\\
	Clave primaria: (tipo\_documento, nro\_documento, nro\_turno)\\
	Foreign keys: (tipo\_documento, nro\_documento) -> (Paciente.tipo\_documento, Paciente.nro\_documento)\\
		           (nro\_legajo) -> (Profesional.nro\_legajo)\\
		           (lugar) -> (LugarDeAtencion.nombre)\\
		           (especialidad, prestacion) -> (Prestacion.especialidad, Prestacion.nombre)\\

	\item Paciente(apellido\_casado, tipo\_documento, nro\_documento, condicion\_IVA, fecha\_nacimiento, lugar\_nacimiento, direccion, nombre, apellido)\\
	Claves candidatas: (tipo\_documento, nro\_documento)\\
	Clave primaria: (tipo\_documento, nro\_documento)\\
	Foreign keys: ninguna\\

	\item Profesional(nro\_legajo, direccion, nombre, apellido)\\
	Claves candidatas: (nro\_legajo)\\
	Clave primaria: (nro\_legajo)\\
	Foreign keys: ninguna\\

	\item Especialidad(nombre)
	Claves candidatas: (nombre)\\
	Clave primaria: (nombre)\\
	Foreign keys: ninguna\\

	\item LugarDeAtencion(nombre, piso)\\
	Claves candidatas: (nombre)\\
	Clave primaria: (nombre)\\
	Foreign keys: ninguna\\

	\item HistoriaClinica(nro\_historia\_clinica, tipo\_documento, nro\_documento)\\
	Claves candidatas: (nro\_historia\_clinica)\\
	Clave primaria: (nro\_historia\_clinica)\\
	Foreign keys: (tipo\_documento, nro\_documento) -> (Paciente.tipo\_documento, Paciente.nro\_documento)\\

	\item Informe(numero\_informe, detalle, nro\_historia)\\
	Claves candidatas: (nro\_historia, numero\_informe)\\
	Clave primaria: (nro\_historia, numero\_informe)\\
	Foreign keys: (nro\_historia) -> (HistoriaClinica.nro\_historia)\\

	\item Plan(nombre, entidad\_financiadora)\\
	Claves candidatas: (entidad\_financiadora, nombre)\\
	Clave primaria: (entidad\_financiadora, nombre)\\
	Foreign keys: entidad\_financiadora -> EntidadFinanciadora.nombre\\

	\item EntidadFinanciadora(nombre, tipo)\\
	Claves candidatas: (nombre)\\
	Clave primaria: (nombre)\\
	Foreign keys: ninguna\\

	\item Prestacion(nombre, especialidad)\\
	Claves candidatas: (especialidad, nombre)\\
	Clave primaria: (especialidad, nombre)\\
	Foreign keys: (especialidad) -> (Especialidad.nombre)\\

	\item Pago(id\_pago, concepto, pago, importe, tipo\_documento, nro\_documento, nro\_turno)\\
	Claves candidatas: (tipo\_documento, nro\_documento, nro\_turno, id\_pago)\\
	Clave primaria: (tipo\_documento, nro\_documento, nro\_turno, id\_pago)\\
	Foreign keys: (tipo\_documento, nro\_documento, nro\_turno) -> (Turno.tipo\_documento, Turno.nro\_documento, Turno.nro\_turno)\\

	\item Bono(id\_bono, descripcion, presento\_bono, tipo\_documento, nro\_documento, nro\_turno)\\
	Claves candidatas: (tipo\_documento, nro\_documento, nro\_turno, id\_bono)\\
	Clave primaria: (tipo\_documento, nro\_documento, nro\_turno, id\_bono)\\
	Foreign keys: (tipo\_documento, nro\_documento, nro\_turno) -> (Turno.tipo\_documento, Turno.nro\_documento, Turno.nro\_turno)\\

	\item Autorizacion(id\_autorizacion, descripcion, presento\_autorizacion, tipo\_documento, nro\_documento, nro\_turno)\\
	Claves candidatas: (tipo\_documento, nro\_documento, nro\_turno, id\_autorizacion)\\
	Clave primaria: (tipo\_documento, nro\_documento, nro\_turno, id\_autorizacion)\\
	Foreign keys: (tipo\_documento, nro\_documento, nro\_turno) -> (Turno.tipo\_documento, Turno.nro\_documento, Turno.nro\_turno)\\

	\item Cubre(porcentaje, bono, autorizacion, prestacion, especialidad, entidad\_financiadora, plan)\\
	Claves candidatas: (prestacion, especialidad, entidad\_financiadora, plan)\\
	Clave primaria: (prestacion, especialidad, entidad\_financiadora, plan)\\
	Foreign keys: (prestacion, especialidad) -> (Prestacion.nombre, Prestacion.especialidad)\\
		           (entidad\_financiadora, plan) -> (Plan.entidad\_financiadora, Plan.nombre)\\

	\item Cancela(causa, turno, nro\_documento, tipo\_documento)\\
	Claves candidatas: (turno, nro\_documento, tipo\_documento)\\
	Clave primaria: (turno, nro\_documento, tipo\_documento)\\
	Foreign keys: (turno, nro\_documento, tipo\_documento) -> (Turno.nro\_turno, Turno.nro\_documento, Turno.tipo\_documento)\\
	
	\item Contrata(nro\_afiliado, tipo\_afiliado, condicion, nro\_documento, tipo\_documento)\\
	Claves candidatas: (nro\_documento, tipo\_documento)\\
	Clave primaria: (nro\_documento, tipo\_documento)\\
	Foreign keys: (nro\_documento, tipo\_documento) -> (Paciente.nro\_documento, Paciente.tipo\_documento)\\

	\item SeEspecializaEn(nro\_legajo, especialidad)\\
	Claves candidatas: (nro\_legajo, especialidad)\\
	Clave primaria: (nro\_legajo, especialidad)\\
	Foreign keys: (nro\_legajo) -> (Profesional.nro\_legajo)\\
	                      (especialidad) -> (Especialidad.nombre)\\

\end{itemize}

\newpage

\section{Sentencias DDL}
Se detallan a continuación las sentencias DDL necesarias para pasar del modelo lógico precedente a un modelo físico.\\

\lstset{language=SQL}

\lstinputlisting{sql/DDL_TP.sql}

\newpage

\section{Consultas SQL}


\subsection{Consultas}

\begin{enumerate}
\item El nombre y apellido de los pacientes que tienen o han tenido más de un turno con el
mismo profesional.

\lstinputlisting{sql/query1.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE&APELLIDO\\ \hline
Irma&Rodriguez \\ \hline
Olga&Amour\\ \hline
\end{tabular}
\end{center}

\item  El/los planes que cubren mayor cantidad de prestaciones.

\lstinputlisting{sql/query2.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE\_PLAN&NOMBRE\_ENTIDAD\\ \hline
310&OSDE\\ \hline
1&DOSUBA\\ \hline
\end{tabular}
\end{center}

\item El/los nombres y apellidos de los profesionales que tienen mayor cantidad de turnos asignados.

\lstinputlisting{sql/query3.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE&APELLIDO\\ \hline
Alex&Velez \\ \hline
\end{tabular}
\end{center}

\item  El/las entidades que tienen mayor cantidad de pacientes con turnos reservados.

\paragraph{Hipótesis:}
Nuestra interpretación del enunciado es que solicita los nombres de
las entidades que poseen mayor cantidad de turnos asignados a sus
pacientes (es decir, no mayor cantidad de pacientes distintos con
turnos asignados).

\lstinputlisting{sql/query4.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|}\hline
NOMBRE\_ENTIDAD\\ \hline
Privado\\ \hline
\end{tabular}
\end{center}

\item Por cada entidad el monto a facturar por las prestaciones debido a las prestaciones efectuadas y a efectuar en los turnos.

\lstinputlisting{sql/query5.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE\_ENTIDAD&MONTO\\ \hline
OSDE&800 \\ \hline
DOSUBA&350 \\ \hline
Privado&0 \\ \hline
\end{tabular}
\end{center}

\item El monto total a pagar por los pacientes debido a las prestaciones efectuadas y a efectuar en los turnos.

\lstinputlisting{sql/query6.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|c|}\hline
NOMBRE&APELLIDO&MONTO\\ \hline
Juan&Perez&150 \\ \hline
Maria&Gonzales&0 \\ \hline
Carlos&Pedrazzi&50 \\ \hline
Irma&Rodriguez&100 \\ \hline
Olga&Amour&150 \\ \hline
\end{tabular}
\end{center}

\item Listado de planes que cubren en algún porcentual todas las prestaciones.

\lstinputlisting{sql/query7.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE\_ENTIDAD&NOMBRE\_PLAN\\ \hline
OSDE&310 \\ \hline
DOSUBA&1 \\ \hline
\end{tabular}
\end{center}

\item Listado de los profesionales que entre todos los pacientes que atienden se encuentran todos los planes.

\paragraph{Hipótesis:}
Se excluyó de la consulta al plan privado, por considerar que no
interesaba al estudio indicado.
En caso de requerir también este plan, la consulta no devuelve datos
(no hay profesionales que cumplan los requisitos solicitados)

\lstinputlisting{sql/query8.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE&APELLIDO\\ \hline
Rogelio&Diaz\\ \hline
\end{tabular}
\end{center}

\item El listado de los planes cuyo costo económico de cobertura (porcentual del importe) está por debajo del promedio general.

\paragraph{Hipótesis:}
Se interpretó el concepto costo económico de cobertura como el
promedio de la suma de los importes de las prestaciones por el
porcentaje de cobertura de cada una de ellas.

\lstinputlisting{sql/query9.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|}\hline
NOMBRE\_ENTIDAD&NOMBRE\_PLAN\\ \hline
OSDE&210 \\ \hline
Privado& \\ \hline
\end{tabular}
\end{center}

\item Listado de los profesionales con el monto de las prestaciones que realizan desagregado por sexo de los pacientes y entidades.

\lstinputlisting{sql/query10.sql}

\paragraph{Resultado:}
\begin{center}
\begin{tabular}{|c|c|c|c|c|}\hline
NOMBRE&APELLIDO&SEXO&NOMBRE\_ENTIDAD&MONTO\\ \hline
Alex&Velez&F&Privado&900 \\ \hline
Edgar&Agar&F&OSDE&800 \\ \hline
Edgar&Agar&F&Privado&100 \\ \hline
Rogelio&Diaz&F&OSDE&100 \\ \hline
Rogelio&Diaz&M&DOSUBA&400 \\ \hline
Rogelio&Diaz&M&OSDE&200 \\ \hline
\end{tabular}
\end{center}


\end{enumerate}

\end{document}
